{{tag>sauvegarde restauration paquet tutoriel BROUILLON}}

----

====== Points de restauration pour un système Linux ======

===== Versions concernées =====

  * Tout système Linux basé sur Debian, donc Ubuntu, Kubuntu, Xubuntu, Édubuntu, etc.
  * Testé sous Kubuntu 9.10 32 bits.

<note warning>Les présentes procédures sont en reconstruction. Si vous n'être pas un utilisateur avancé et que vous ne connaissez pas les implications des commandes utilisées ici, pour le moment abstenez-vous de les utiliser et revenez dans un ou deux mois !</note>

===== Introduction =====

Pour des questions de sécurité ou d'intégrité d'un système ou de confort d'utilisation, avant toute installation ou désinstallation de logiciel dans votre distribution Linux ou du plantage récurant du système ou d'un logiciel en particulier, il est parfois souhaitable de pouvoir revenir en arrière sur nos actions.

Pour ce faire, il y a le concept de **Point de Restauration**. Il est question ici de conserver un certain nombre de paramètres concernant, soit les paramètres et les données des paquets logiciels et les modules et dépendances qui sont installés dans l'ordinateur, soit des versions des données personnelles, vos textes, photos, etc., soit tout cela et les paquets logiciel eux même, soit une migration d'une version à une autre, etc.

Pour le moment, il n'existe pas de solution unique et simple !

Pour pallier temporairement à ce manque, vous trouverez dans le présent tutoriel, plusieurs sections qui répondent à des cas, à des besoins spécifiques, soit des besoins de sécurité, soit de simplicité, d'automatisation, etc. Mais elles touchent toutes des variantes du concept de **Point de Restauration**.

La dernière solution proposée se veux une synthèse de toutes les sections et c'est elle qui donne les résultats qui se rapprochent le plus de l'équivalent de ce que l'on retrouve sous MS-Windows. Mais il y a des inconvénients de tailles :

  - Ce ne sont pas des procédures simples !
  - C'est gourmand en espace de disque dur !
  - Dans un sens comme dans l'autre (créer un point ou le restaurer) c'est une procédure longue !
  - Les erreurs graves ou irréversibles sont faciles à faire, si vous n'être pas concentré quand vous exécute les étapes !

<note tip>Prenez les temps de **lire la sous-section « Introduction » d'une section principale** afin de **bien comprendre** pour quel cas de figure est faite cette section !</note>

===== Avant l'essai d'un nouveau logiciel =====

==== Introduction ====

Quand vous vous apprêtez à utiliser une nouvelle classe de logiciels, par exemple des logiciels de montage vidéo ou de retouche photo ou pour l'essai de nouveau jeu. Dans ces cas, vous allez probablement installer plusieurs logiciels et modules nouveaux dans votre système, pour n'en utiliser au final qu’un ou deux. Il vous sera alors très difficile de retenir tous les ajouts des logiciels et les dépendances qui auront été installés pendant votre processus d'évaluation des logiciels.

<note><note important>**installés par paquets (la méthode ne fonctionne pas si les logiciels sont installés différemment)**</note>

Je ne suis pas sûr de bien comprendre !

La commande « dpkg --clear-selections » marque tous les paquets pour la désinstallation, qu'ils soient installés manuellement ou non et qu'il provienne d'un dépôt ou non.

Je viens de vérifier avec le paquet « googleearth » qui provient du deb « googleearth_5.1.3533.1731+0.5.6-1_i386.deb » de mon dossier « /home/rene », il ne provient donc pas d'un dépôt !

Alors, lors de l'exécution de la commande « dpkg --clear-selections », il sera sélectionné pour la désinstallation, mais comme il fait partie de la liste des paquets a installer, comme le paquet est installé et qu'il fait partie des paquets à installer, rien ne bougera pour ce paquet !

À l'inverse, si un logiciel est ajouté par un fichier téléchargé manuellement et installé manuellement, lors de l'exécution de la commande « dpkg --clear-selections », il sera sélectionné pour la désinstallation et comme il n'est pas dans la liste du point de restauration, lors de l'exécution de la commande « sudo apt-get dselect-upgrade », il sera bel et bien désinstallé !

Si je ne me trompe pas, s'il vous plaît effacez les présentes notes !

Si je me trompe, précisez-moi où et pourquoi !

Merci !
</note>

Il y à la méthode via l'historique de votre gestionnaire de paquets ([[http://doc.kubuntu-fr.org/synaptic|Synaptic]] ou [[http://doc.kubuntu-fr.org/kpackagekit|KPackagekit]]...), il est possible de savoir quels paquets ont été installés récemment, mais il est difficile de les désinstaller rapidement en étant sûr que d'autres paquets ne sont pas surprimes par erreur via le jeu des dépendances, c'est pourquoi nous privilégierons la méthode qui suit.

Voici une méthode simple et très rapide pour sauvegarder sa liste de paquets, et la restaurer, si besoin :

  * Téléchargement des listes des sources des paquets disponibles.
  * Téléchargement décompression et installation des mises à jour des paquets.
  * Enregistrement de la liste des paquets installés comme point de restauration.
  * Installer et tester le ou les logiciels.
  * Si vous gardez le ou les logiciels installer, vous arrêtez ici, il n'y a rien d'autre a faire.
  * Sinon, vous notez le nom du logiciel ou des logiciels que vous souhaitez garder.
  * Marquage de tous les paquets pour la désinstallation.
  * Marquage de tous les paquets à installer avec la liste des paquets installés comme point de restauration.
  * Application des modifications effectuer sur la liste des paquets qui ont été marqués.
  * Réinstaller que le ou les logiciels retenus.

Dans cette section, nous vous proposons :

  * [[#dans_une_console|Une méthode simple en ligne de commande.]]
  * [[#avec_un_script_bash|Une méthode avec un script bash qui automatise les deux tâches principales !]]

=== Prérequis ===

  * Rien, sauf les [[sudo|droits d'administration]] du superutilisateur (root), car un système Linux de base a tout ce qu'il faut !

==== Dans une console ====

=== Création d'un point de restauration ===

Procédez à la mise à jour du système Linux avec les commandes suivantes :

  sudo aptitude update
  # Téléchargement des listes des sources des paquets disponibles.

  sudo aptitude safe-upgrade
  # Téléchargement décompression et installation des mises à jour des paquets.

Enregistrement de la liste des paquets installés comme point de restauration avec la commande suivante (dans le nom du fichier texte, vous remplacez "**Date**" par la date du jour) :

  dpkg --get-selections > PointDeRestauration-Date.txt
  # Enregistrement dans le fichier texte "PointDeRestauration-Date.txt" de la liste des paquets déjà installés.

Installer et tester le ou les logiciels.

=== Restauration d'un point ===

Si vous gardez le ou les logiciels installer, vous arrêtez ici, il n'y a rien d'autre a faire, votre système est propre !

Sinon, vous notez le nom du logiciel ou des logiciels que vous souhaitez garder.

Pour revenir à un point de restauration précédemment créé (dans le nom du fichier texte, vous remplacez "**Date**" par la date du jour du point de restauration que vous souhaitez récupérer) :

  dpkg --clear-selections
  # Marquage de tous les paquets pour la désinstallation.

  dpkg --set-selections < PointDeRestauration-Date.txt
  # Marquage de tous les paquets à installer avec le contenu du fichier texte "PointDeRestauration-Date.txt".

  sudo apt-get dselect-upgrade
  # Application des modifications effectuer sur la liste des paquets qui ont été marqués.

Réinstaller le ou les logiciels retenus.

Voilà, vous avez gardé votre système propre !

==== Avec un Script bash ====

=== Algorithme ===

Ce script est une automatisation des commandes précédentes en deux étapes, a exécuté dans une console.

Il vérifie l'existence d'un dossier nommé « PointDeRestauration » à la racine du dossier de l'utilisateur.

- S'il n'existe pas, le dossier est créé.

- S'il existe, on passe à la prochaine action.

On vous propose les actions suivantes :

<code>
1) Créer un point de restauration.

2) Restaurer un point.

3) Quitter.

Taper le numéro de l'action que vous souhaitez ou CTRL-C pour quitter ce script :
</code>

Dans le cas 1, un point de restauration est créé dans le dossier « PointDeRestauration » portant comme nom la date du jour.

Dans le cas 2, La liste des points de restauration du dossier apparaît et on vous demande d'entrer la date du point de restauration. Vous entrez au clavier la date au format AAMMJJ du fichier souhaité.

Dans le cas 3, le script se termine.

Si vous tapez CTRL-C, le script s'arrête.

=== Créer et utiliser le script ===

Créer le script avec la commande suivante dans une console :

- Sous Kubuntu :

  sudo kate ~/PointDeRestauration.sh

- Sous Ubuntu :

  sudo gedit ~/PointDeRestauration.sh

Copier le contenu qui suit dans l'éditeur de texte et enregistrer le fichier, puis quitter l'éditeur de texte.

<code>
#!/bin/bash
nomDossier=~/PointDeRestauration/
clear
mkdir -p $nomDossier
echo ""
echo "1) Créer un point de restauration."
echo ""
echo "2) Restaurer un point."
echo ""
echo "3) Quitter."
echo ""
echo "Taper le numéro de l'action que vous souhaitez ou CTRL-C pour quitter ce script : "
echo ""
read touche1

case "$touche1" in
1)
    point=$(date +%F)
    if dpkg --get-selections > $nomDossier/$point; then
        echo "Le point de restauration « $point » a est créé avec succès !"
    else
        echo "La création du point de restauration a échoué !"
    fi
    ;;
2)
    echo "Taper la date « exacte », parmis les points de restaurations les suivants : "
    echo
    cd $nomDossier
    ls
    read point
    if [ -f $nomDossier/$point ]; then
        sudo dpkg --clear-selections
        if sudo dpkg --set-selections < $nomDossier/$point; then
            echo "Votre système a été restauré en date du « $point » avec succès !"
        else
            echo "La restauration a échoué !"
        fi
    else
        echo "Le fichier pour la date de restauration « $point » n'existe pas !"
    fi
    ;;
3)
    echo "Fin du script sans exécuter de commande !"
    ;;
esac
echo ""
</code>

Donner les doit d'exécution au nouveau fichier avec la commande suivante dans une console :

  chmod +x PointDeRestauration.sh 

Pour exécuter ce script dans une console avec la commande suivante et suivez les instructions :

  ./PointDeRestauration.sh


===== Les paramètres d'un utilisateur =====

<note warning>Doublon avec le tuto http://doc.ubuntu-fr.org/tutoriel/sauvegarder_home (on peut y completer la partie "Restauration")</note>


==== Introduction ====

Quand vous vous apprêtez à utiliser une nouvelle classe de logiciels, par exemple des logiciels de montage vidéo ou de retouche photo ou pour l'essai de nouveau jeu. Dans ces cas, vous allez probablement installer plusieurs logiciels et modules nouveaux dans votre système, pour n'en utiliser au final qu’un ou deux. Il vous sera alors très difficile de retenir tous les ajouts des logiciels et les dépendances qui auront été installés pendant votre processus d'évaluation des logiciels.

Dans cette section, nous vous proposons :

  * [[#dans_une_console1|Une méthode simple en ligne de commande]]
  * [[#avec_un_script_bash1|Une méthode avec un script bash qui automatise les deux tâches principales !]]
  * [[#avec_un_logiciel_en_mode_graphique|Une méthode avec un logiciels en mode graphique.]]

=== Prérequis ===

  * Rien, sauf les [[sudo|droits d'administration]] du superutilisateur (root), car un système Linux de base a tout ce qu'il faut !

==== Dans une console ====

=== Création d'un point de restauration ===

Lancer Konqueror ou Dolphin ou Nautilus.

Appuyer sur la touche **F4** pour ouvrir une console 

Je vous recommande de créer sur le périphérique de votre choix, un dossier qui contiendra tous les fichiers archives des utilisateurs de votre ordinateur.

Par exemple, si nous souhaitons utiliser le dossier courant de l'utilisateur **rene**, qui se nommerait **ArchivesDesUtilisateurs**, copiez la commande suivante dans la console :

  mkdir /home/rene/ArchivesDesUtilisateurs
 
Pour créer une archive compressée de tous les paramètres de l'utilisateur **rene**, il faut archiver tous les dossiers cacher du **Home** de l'utilisateur vers le périphérique de votre choix, disons le dossier **ArchivesDesUtilisateurs** (prener soin de changer la partie date dans le nom de l'archive **AA-MM-JJ**).

Pour notre exemple la commande sera :

  sudo 7z a /home/rene/ArchivesDesUtilisateurs/rene-AA-MM-JJ /home/rene/.*

Si votre mot de passe vous est demandé, entrer le mot de passe habituel pour l'utilisateur courant !

Si nous étions le 14 mai 2010 la même commande deviendrait la suivante :

  sudo 7z a /home/rene/ArchivesDesUtilisateurs/rene-10-04-14 /home/rene/.*

Cela prendra quelques minutes, soyer patient !

== Liens ==

[[http://doc.kubuntu-fr.org/backup-manager|http://doc.kubuntu-fr.org/backup-manager]]

[[http://doc.kubuntu-fr.org/rdiff-backup|rdiff-backup]]

=== Restauration d'un point ===

== Cas numéro 1 ==

Le cas d'une restauration dans l'ordinateur d'origine de la source de l'archive avec l'utilisateur **rene** des notre exemple de la création d'archive.

Pour décompresser l'archive en respectent l'arborescence des fichiers et l'extraits dans la même structure des dossier que la source originale, copier la commande suivante dans la console :

  sudo 7z x /home/rene/ArchivesDesUtilisateurs/rene-10-04-14

Cela prendra quelques minutes, soyer patient !

== Cas numéro 2 ==

Le cas d'une restauration dans l'ordinateur d'origine de la source de l'archive, mais dans le **home** d'un autre utilisateur que celui d'origine, par exemple à la suite de la création de nouvel utilisateur pour lui donner une configuration standardisée, dison pour la nouvelle utilisatrice **annie**.

Nous devons nous déplacer dans le dossier racine du **home** d'**annie**, avec la commande suivante :

  sudo cd /home/annie

Pour décompresser l'archive de **rene** sans respecter l'arborescence des fichiers et l'extraits dans le dossier du **home** d'**annie**, copier la commande suivante dans la console :

  sudo 7z e /home/rene/ArchivesDesUtilisateurs/rene-10-04-14

La différence dans la commande est le paramètre **e** qui remplace le paramètre **x** !

Cela prendra quelques minutes, soyer patient ! 

==== Avec un Script bash ====

==== Avec un logiciel en mode graphique ====

[[http://doc.kubuntu-fr.org/areca_backup|Areca Backup]]

[[http://doc.kubuntu-fr.org/hubackup|HUBackup]]

[[http://doc.kubuntu-fr.org/sbackup|SBackup]]

===== Les données d'un utilisateur =====

===== Les données partagées entre Linux Win =====

===== Les paramètres et données d'un utilisateur =====

===== Les paramètres d'un système =====

===== Les données d'un système =====

===== Changement de 32 Bits à 64 Bits =====

===== Changement de 64 Bits à 32 Bits =====

===== Un système Linux complète =====

===== Liens =====

  * Astuce dpkg et les sélections de paquets : http://contrib.linalis.com/content/astuce-dpkg-et-les-s%C3%A9lections-de-paquets

  * (En anglais) 2 Ways Of Reinstalling All Of Your Current Installed Packages On A Fresh Ubuntu Installation :  [[http://www.webupd8.org/2010/03/2-ways-of-reinstalling-all-of-your.html|http://www.webupd8.org/2010/03/2-ways-of-reinstalling-all-of-your.html]]

===== Vous pouvez m'aider ? =====

<note help>Je suis unilingue francophone et cela m'empêche de suggérer aux équipes de développement et de production des distributions Linux qui sont principalement anglophones. Pourriez-vous leur suggérer à ma place, en mon nom ou en votre propre nom, de produire une interface graphique pour remplacer les présentes procédures ? Merci d'avance à tous ceux qui le feront !</note>

===== Autres pages en lien avec les sujets =====

{{backlinks>.}}
{{topic>sauvegarde restauration paquet}}

----

//Contributeurs : [[utilisateurs:lami|L'ami René]] (L'auteur), [[utilisateurs:YannUbuntu]].//

